The field of this disclosure relates generally to systems and methods for automated data reading and, more particularly, to calibration and self-test in automated data reading systems.
Optical codes encode useful, optically readable information about items to which they are attached or otherwise associated. Optical codes are typically placed on items to help track item movement in industrial or shipping facilities, or to facilitate sales and monitor inventory at retail establishments. The optical codes are placed on or associated with items, packages, containers, or other objects, and read by data readers when the items bearing the optical codes are within the data reader's read zone during a data-reading operation. For example, in retail stores, data readers are placed at checkstands or are built into a checkstand counter and generally have one or more read volumes (scan volumes) that collectively establish a read zone in which optical codes may be successfully read.
Optical code readers acquire data from one-dimensional and two-dimensional optical codes or from other types of identifying indicia or symbols, such as biometric features. Two types of optical code readers used to acquire data associated with an optical code are laser scanners and imager-based optical code readers—the latter are also referred to as imaging readers. Both laser scanners and imaging readers are referred to more generally as scanners, data readers, or simply readers. Therefore, for purposes of this disclosure, the terms scan and read are used interchangeably to connote acquiring information associated with optical codes. Likewise, the terms scanner and reader are used interchangeably to connote devices that acquire data associated with optical codes, other symbols, or electromagnetic fields (e.g., radio-frequency identification or near field communication).
Although functionally similar to laser scanners, imaging readers employ a camera or an imaging system including an imager sensor array (imager) and associated optics (mirrors or lenses) to receive light reflected from an optical code and to generate image data (typically in digital form) representing the optical code. This application uses the terms camera and imaging system interchangeably to connote devices that receive light and produce image data used to locate and decode optical codes.
Data readers that read the information encoded in optical codes may be generally classified in one of three types: manual, semi-automatic, or automated readers. With manual or semi-automatic readers (e.g., a hand-held type reader, or a fixed-position reader), a human operator positions an item relative to the read zone for reading the optical code associated with the item. In an automated reader, such as a portal or tunnel scanner, a conveyor automatically positions the item relative to the read zone, e.g., transports the item through the read zone, so that the data reader can automatically read the optical code borne by the item while contemporaneously tracking the item using three-dimensional (3-D) machine vision techniques.
In 3-D machine vision, a camera (imaging system) is modeled as a ray-based sensing device with the camera's geometry controlling how observed rays of light are mapped onto an image plane. A camera model—typically a perspective projection camera model, also referred to as a pinhole camera model—provides a transformation that maps between the projection rays and image points. The transformation is refined by determining geometric properties of the camera in a process called geometric camera calibration, or simply calibration. Hence, a calibrated camera can be used as a direction sensor where both the forward-projection and back-projection transformations are determined, i.e., one may compute the image point corresponding to a given projection ray and vice versa.
A camera model generally contains two kinds of parameters: extrinsic parameters that relate the camera orientation and position with respect to a system coordinate frame, and intrinsic parameters that determine the projection from a camera coordinate frame onto image coordinates. In typical 3-D machine vision applications, both the external and internal camera parameters are determined during the calibration process.
Geometric camera calibration has conventionally included positioning a bulky calibration object having known geometric properties, calibrating an imaging system by imaging the object with the imaging system, and repositioning the object to another location suitable for calibrating a different imaging system. Previous calibration objects often included one to three planes that included rudimentary geometric shapes to provide features (e.g., corner locations) establishing calibration-control points, i.e., known system-coordinate locations. From those rudimentary geometric shapes, measured locations of the features were extracted from image data and attempts were made to fit the measured locations of the image data to the calibration-control points based on a camera model. These previous attempts typically either ignored errors attributable to the extraction step, the repositioning process, and inconsistencies in the shape of the target, or included additional remediation techniques to reduce the effects of these error sources.